package com.example.mymvvmdemo.models.main.fragment.notification.entity;

import java.util.ArrayList;
import java.util.List;

public class MessageMessagesEntity {


    public int code;
    public String message;
    public DataDTO data;

    @Override
    public String toString() {
        return "MessageMessagesEntity{" +
                "code=" + code +
                ", message='" + message + '\'' +
                ", data=" + data +
                '}';
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public DataDTO getData() {
        return data;
    }

    public void setData(DataDTO data) {
        this.data = data;
    }

    public static class DataDTO {
        public int count;
        public Object next;
        public Object previous;
        public ArrayList<ResultsDTO> results;

        @Override
        public String toString() {
            return "DataDTO{" +
                    "count=" + count +
                    ", next=" + next +
                    ", previous=" + previous +
                    ", results=" + results +
                    '}';
        }

        public int getCount() {
            return count;
        }

        public void setCount(int count) {
            this.count = count;
        }

        public Object getNext() {
            return next;
        }

        public void setNext(Object next) {
            this.next = next;
        }

        public Object getPrevious() {
            return previous;
        }

        public void setPrevious(Object previous) {
            this.previous = previous;
        }

        public ArrayList<ResultsDTO> getResults() {
            return results;
        }

        public void setResults(ArrayList<ResultsDTO> results) {
            this.results = results;
        }

        public static class ResultsDTO {
            public int id;
            public String topic;
            public String message_type;
            public PayloadDTO payload;
            public int qos;
            public boolean retain;
            public String status;
            public String created_at;
            public String updated_at;
            public String sent_at;
            public Object delivered_at;
            public Object acknowledged_at;
            public String error_message;
            public int device;

            @Override
            public String toString() {
                return "ResultsDTO{" +
                        "id=" + id +
                        ", topic='" + topic + '\'' +
                        ", message_type='" + message_type + '\'' +
                        ", payload=" + payload +
                        ", qos=" + qos +
                        ", retain=" + retain +
                        ", status='" + status + '\'' +
                        ", created_at='" + created_at + '\'' +
                        ", updated_at='" + updated_at + '\'' +
                        ", sent_at='" + sent_at + '\'' +
                        ", delivered_at=" + delivered_at +
                        ", acknowledged_at=" + acknowledged_at +
                        ", error_message='" + error_message + '\'' +
                        ", device=" + device +
                        '}';
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getTopic() {
                return topic;
            }

            public void setTopic(String topic) {
                this.topic = topic;
            }

            public String getMessage_type() {
                return message_type;
            }

            public void setMessage_type(String message_type) {
                this.message_type = message_type;
            }

            public PayloadDTO getPayload() {
                return payload;
            }

            public void setPayload(PayloadDTO payload) {
                this.payload = payload;
            }

            public int getQos() {
                return qos;
            }

            public void setQos(int qos) {
                this.qos = qos;
            }

            public boolean isRetain() {
                return retain;
            }

            public void setRetain(boolean retain) {
                this.retain = retain;
            }

            public String getStatus() {
                return status;
            }

            public void setStatus(String status) {
                this.status = status;
            }

            public String getCreated_at() {
                return created_at;
            }

            public void setCreated_at(String created_at) {
                this.created_at = created_at;
            }

            public String getUpdated_at() {
                return updated_at;
            }

            public void setUpdated_at(String updated_at) {
                this.updated_at = updated_at;
            }

            public String getSent_at() {
                return sent_at;
            }

            public void setSent_at(String sent_at) {
                this.sent_at = sent_at;
            }

            public Object getDelivered_at() {
                return delivered_at;
            }

            public void setDelivered_at(Object delivered_at) {
                this.delivered_at = delivered_at;
            }

            public Object getAcknowledged_at() {
                return acknowledged_at;
            }

            public void setAcknowledged_at(Object acknowledged_at) {
                this.acknowledged_at = acknowledged_at;
            }

            public String getError_message() {
                return error_message;
            }

            public void setError_message(String error_message) {
                this.error_message = error_message;
            }

            public int getDevice() {
                return device;
            }

            public void setDevice(int device) {
                this.device = device;
            }

            public static class PayloadDTO {
                public ParamsDTO params;
                public String command;

                public static class ParamsDTO {
                    public int delay;
                }
            }
        }
    }
}
